class code1 {
    //有效括号：方法一：stack+ifelse
    public boolean isValid(String s) {
        Stack<Character> st = new Stack<>();

        for(char ch : s.toCharArray()) {
            if(ch=='('||ch=='['||ch=='{') {
                st.push(ch);
            } else {
                //栈空
                if(st.isEmpty()) {
                    return false;
                }
                char x = st.peek();
                if((ch==')'&&x=='(')||(ch==']'&&x=='[')||(ch=='}'&&x=='{')) {
                    st.pop();
                } else {
                    //栈不为空&&没有匹配的右括号
                    return false;
                }
            }
        }

        return st.isEmpty();
    }
}